package com.stx.crazyblog.servlet;

import java.io.IOException;
import java.util.List;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.stx.crazyblog.dao.CategoryDao;
import com.stx.crazyblog.entity.Category;

public class CategoryQueryServlet extends HttpServlet{
//	相当于java类的身份证。主要用于版本控制。
//	serialVersionUID作用是序列化时保持版本的兼容性，即在版本升级时反序列化仍保持对象的唯一性。
	 private static final long  serialVersionUID = 1l;
//	 初始化dao对象
	 CategoryDao dao = null;
/*
 * 初始化对象，将初始化DAO对象的方法防护init()方法中，并且确保dao只能创建一次
 */	 
	 	 public void init() throws ServletException{
//	 		 初始化dao对象
	 		 dao =new CategoryDao();
	 	 }
	 	/**
	 	`* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
	 	 *      response)
	 	 */
	 	 
	 	 protected void doGet(HttpServletRequest request,
	 				HttpServletResponse response) throws ServletException,IOException{
	 		 
	 		 doPost(request,response);
	 	 }
	 	 /**
	 	  * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
	 	  *      response)
	 	  */	  
	 	 protected void doPost(HttpServletRequest request,
	 			 HttpServletResponse response) throws ServletException,IOException{	
	 		// 设置请求编码集为utf-8(避免中文乱码)
	 		request.setCharacterEncoding("utf-8");
//			 创建类别类数据视图对象(用于封装类别信息的查询条件)
	 		 Category categoryParams = new Category();
//			 从页面获取查询条件
//			 request.getParameter("")  条件未确定
				try {
//			调用dao中查询类别列表的方法，获得类别列表的集合
					List<Category> categoryList = dao.queryCategory(categoryParams);
//			将查询结果保存到request对象中
					request.setAttribute("categoryList", categoryList);
//			通过ServletContext对象获取RequestDispatcher对象
//			通过ServletContext对象获得的路径是 相对Web应用根的路径,即绝对路径.
					RequestDispatcher rd = getServletContext().getRequestDispatcher("/jsp/category/categoryList.jsp");
//			请求转发给类别信息列表(/jsp/category/categoryList.jsp)
					rd.forward(request, response);
				} catch (Exception e) {
					// TODO 自动生成的 catch 块
					e.printStackTrace();
				}
			
			}
		 
	
	}

